#输入10个数，并且能求出10个数的和
# a = input("请输入10个数>>>")
# print(type(a))
# c = list(a)
# print(type(c))
# b = eval(a)
# print(type(b))
# sum = sum(b)        #如果把b换成c，运行的话为什么会报错
# print("10个数的总和>>>",sum)




#输入10个数，求最大值，求和以及求平均值
# a = eval(input("请输入10个数>>>"))
# b = max(a)
# c = sum(a)
# d = c/len(a)
# print("最大值为>>>",b)
# print("总和为>>>",c)
# print("平均值为>>>",d)





#使用random模块，如何产生50~150之间的数？
# import random                #import作用是将random模块导入进来
# n = random.uniform(50,150)   #如果要随机产生整数，使用random.randint(50,150)
# print(n)




#键盘输入三角形的3个边，判断能否成三角形，能的话判断一下成什么三角形（等边，等腰，直角，普通，不能成三角形）
# a = int(input("请输入三角形的第一条边>>>"))
# b = int(input("请输入三角形的第二条边>>>"))
# c = int(input("请输入三角形的第三条边>>>"))
# if a+b > c and a+c > b and b+c > a :     #如果下面所有or和and换成|和&，结果会一样吗？不会
#     print("能成三角形")
# # else :
# #     print("不能成三角形")
# if a == b and a == c and b == c and (a+b > c and a+c > b and b+c > a) :
#     print("等边三角形")
# elif a == b or a == c or b == c and (a+b > c and a+c > b and b+c > a) :
#     print("等腰三角形")
# elif a ** 2 + b ** 2 == c ** 2 or a ** 2 + c ** 2 == b ** 2 or b ** 2 + c ** 2 == a ** 2 and (a+b > c and a+c > b and b+c > a) :
#     print("直角三角形")
# elif a+b <= c or a+c <= b or b+c <= a :
#     print("不能成三角形")
# else :
#     print("普通三角形")





#有以下两个数，使用+，-号实现两个数的调换（4种方法）
#方法一：赋值法
# print("请输入两个整数>>>")
# A = int(input("第一个整数A>>>"))
# B = int(input("第二个整数B>>>"))
# C = A
# A = B
# B = C
# print("A调换后为>>>%d"%A)       #%d %A %B在这里有什么作用
# print("B调换后为>>>%d"%B)

#方法二：相加法
# print("请输入两个整数>>>")
# A = int(input("第一个整数A>>>"))
# B = int(input("第二个整数B>>>"))
# A = A + B
# B = A - B
# A = A - B
# print("A调换后为>>>%d"%A)
# print("B调换后为>>>%d"%B)

#方法三：异或法
# print("请输入两个整数>>>")
# A = int(input("第一个整数A>>>"))
# B = int(input("第二个整数B>>>"))
# A = A ^ B
# B = A ^ B
# A = A ^ B
# print("A调换后为>>>%d"%A)
# print("B调换后为>>>%d"%B)

#方法四：python内置方法
# print("请输入两个整数>>>")
# A = int(input("第一个整数A>>>"))
# B = int(input("第二个整数B>>>"))
# A,B = B,A
# print("A调换后为>>>%d"%A)
# print("B调换后为>>>%d"%B)





#实现登录系统的三次密码输入错误锁定功能（用户：root  密码：admin）
# username = "root"
# password = "admin"
# n = 0
# while n < 3 :
#     pwd = input("请输入您的密码：")
#     if pwd == password :
#         print("登录成功")
#         break    #   退出循环
#     else :
#         print("密码错误！")
#         n += 1  #   n = n + 1







#编程实现下列图形的打印
# lines = int(input("输入要打印的行数>>>"))
# for i in range(lines) :
#         print(" " * (lines - i - 1), end = " ")
#         print("*" * (2 * i - 1))





#使用while循环实现NXN乘法表的打印
# n = int(input("请输入一个整数:"))
# j = 0
# while j < n :
#     j += 1    # 内循环控制行
#     i = 0
#     while i < j :
#         i += 1
#         print(i, "*", j, "=", (i * j), end = " ")
#         print()






#编程实现九九乘法表的倒叙打印
# for i in range(9, 0, -1) :
#     for j in range(i, 0, -1) :
#         print("%d * %d = %d \t" % (i, j, i * j), end = " ")
#         print()





#一只青蛙掉在井里了，井高20米，青蛙白天往上爬3米，晚上下滑2米，问第几天能出来？
# a = 0
# i = 1
# while i < 100 :
#     a += 3
#     if a >= 20 :
#         print("第", i, "天爬出来的")
#         break
#     a -= 2
#     i += 1






#判断下列变量命名是否合法
# 思路：
# 1.变量名的第一个字符是否为字母或下划线
# 2.如果是，继续判断 --> 4
# 3.如果不是，报错
# 4.依次判断除了第一个字符之外的其他字符
# 5.判断是否为字母数字或者下划线

# a = input("请输入变量命:")
# while True :
#     if a[0].isalpha() or a[0] == "_" :
#         for i in a[1:] :
#             if not(i.isalnum() or i == "_") :
#                 print("不合法")
#                 break
#             else :
#                 print("合法")
#     else :
#         print("不合法")
#     break


#猜数字游戏
# import random
# b = random.randint(1,50)
# print(b)






# #用循环来实现20以内的数的阶乘(1!+2!+3!...+20!)
# import math
# n = int(input("请输入20以内的数:"))
# a = 0
# i = 1
# while i <= n :
#         a += math.factorial(i)
#         if i == n :
#             print("阶乘结果为:", a)
#         i += 1








